class Student{
    public String name;
    public int age;
    public Student(String name){
        this(10);
        this.name = name;
    }
    public Student(int age){
        this.age = age;
    }
    public Student(String name, int age){
        this.name = name;
        this.age = age;
    }
}

class Animal{
    public String name;
    public int age;

    /**
     * 无返回类型，
     */
    Animal(){
        System.out.println("1234");
    }
    public void eat(){
        System.out.println(this.name + "吃粮食！");
    }
    /**
     * 在该类中，
     * 编译器会自动添加 Animal this 这一参数
     * 这也解释为什么可以使用  this
     */
    public void get(Animal this, String a, int b) {
       this.name = a;
       this.age = b;
       this.eat();
    }
}
public class Test {
    public static void main(String[] args) {
        //调用一个参数的构造方法
        Student student1 = new Student("lisa");
        //调用两个参数的构造方法
        Student student2 = new Student("lisa", 10);
    }
    public static void main1(String[] args) {
        Animal animal = new Animal();
        /**
         * 当我们传参时，会将实例化对象animal传入
         * 因此我们可以通过  .号前面的内容来判断给谁赋值
         */
        animal.get("lisa",10);
        System.out.println(animal.name + animal.age);
    }
}
